home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / imm.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-02-09  |  39.6 KB  |  981 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Run-time Library                         }
  5. {       Windows 32bit API Interface Unit                }
  6. {                                                       }
  7. {       Copyright (c) 1996,98 Borland International     }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. unit Imm;
  12.  
  13. {$ALIGN ON}
  14. {$MINENUMSIZE 4}
  15. {$WEAKPACKAGEUNIT}
  16.  
  17. interface
  18.  
  19. uses Windows;
  20.  
  21. const
  22.   {$EXTERNALSYM VK_PROCESSKEY}
  23.   VK_PROCESSKEY = $E5;
  24.  
  25. type
  26.   {$EXTERNALSYM HIMC}
  27.   HIMC = Integer;
  28.  
  29.   PCompositionForm = ^TCompositionForm;
  30.   {$EXTERNALSYM tagCOMPOSITIONFORM}
  31.   tagCOMPOSITIONFORM = record
  32.     dwStyle: DWORD;
  33.     ptCurrentPos: TPOINT;
  34.     rcArea: TRECT;
  35.   end;
  36.   TCompositionForm = tagCOMPOSITIONFORM;
  37.   {$EXTERNALSYM COMPOSITIONFORM}
  38.   COMPOSITIONFORM = tagCOMPOSITIONFORM;
  39.  
  40.   PCandidateForm = ^TCandidateForm;
  41.   {$EXTERNALSYM tagCANDIDATEFORM}
  42.   tagCANDIDATEFORM = record
  43.     dwIndex: DWORD;
  44.     dwStyle: DWORD;
  45.     ptCurrentPos: TPOINT;
  46.     rcArea: TRECT;
  47.   end;
  48.   TCandidateForm = tagCANDIDATEFORM;
  49.   {$EXTERNALSYM CANDIDATEFORM}
  50.   CANDIDATEFORM = tagCANDIDATEFORM;
  51.  
  52.   PCandidateList = ^TCandidateList;
  53.   {$EXTERNALSYM tagCANDIDATELIST}
  54.   tagCANDIDATELIST = record
  55.     dwSize: DWORD;
  56.     dwStyle: DWORD;
  57.     dwCount: DWORD;
  58.     dwSelection: DWORD;
  59.     dwPageStart: DWORD;
  60.     dwPageSize: DWORD;
  61.     dwOffset: array[1..1] of DWORD;
  62.   end;
  63.   TCandidateList = tagCANDIDATELIST;
  64.   {$EXTERNALSYM CANDIDATELIST}
  65.   CANDIDATELIST = tagCANDIDATELIST;
  66.  
  67.   PRegisterWordA = ^TRegisterWordA;
  68.   PRegisterWordW = ^TRegisterWordW;
  69.   PRegisterWord = PRegisterWordA;
  70.   {$EXTERNALSYM tagREGISTERWORDA}
  71.   tagREGISTERWORDA = record
  72.     lpReading: PAnsiChar;
  73.     lpWord: PAnsiChar;
  74.   end;
  75.   {$EXTERNALSYM tagREGISTERWORDW}
  76.   tagREGISTERWORDW = record
  77.     lpReading: PWideChar;
  78.     lpWord: PWideChar;
  79.   end;
  80.   {$EXTERNALSYM tagREGISTERWORD}
  81.   tagREGISTERWORD = tagREGISTERWORDA;
  82.   TRegisterWordA = tagREGISTERWORDA;
  83.   TRegisterWordW = tagREGISTERWORDW;
  84.   TRegisterWord = TRegisterWordA;
  85.   {$EXTERNALSYM REGISTERWORDA}
  86.   REGISTERWORDA = tagREGISTERWORDA;
  87.   {$EXTERNALSYM REGISTERWORDW}
  88.   REGISTERWORDW = tagREGISTERWORDW;
  89.   {$EXTERNALSYM REGISTERWORD}
  90.   REGISTERWORD = REGISTERWORDA;
  91.  
  92. const 
  93.   {$EXTERNALSYM STYLE_DESCRIPTION_SIZE}
  94.   STYLE_DESCRIPTION_SIZE = 32;
  95.  
  96. type
  97.   PStyleBufA = ^TStyleBufA;
  98.   PStyleBufW = ^TStyleBufW;
  99.   PStyleBuf = PStyleBufA;
  100.   {$EXTERNALSYM tagSTYLEBUFA}
  101.   tagSTYLEBUFA = record
  102.     dwStyle: DWORD;
  103.     szDescription: array[0..STYLE_DESCRIPTION_SIZE-1] of AnsiChar; 
  104.   end;
  105.   {$EXTERNALSYM tagSTYLEBUFW}
  106.   tagSTYLEBUFW = record
  107.     dwStyle: DWORD;
  108.     szDescription: array[0..STYLE_DESCRIPTION_SIZE-1] of WideChar; 
  109.   end;
  110.   {$EXTERNALSYM tagSTYLEBUF}
  111.   tagSTYLEBUF = tagSTYLEBUFA;
  112.   TStyleBufA = tagSTYLEBUFA;
  113.   TStyleBufW = tagSTYLEBUFW;
  114.   TStyleBuf = TStyleBufA;
  115.   {$EXTERNALSYM STYLEBUFA}
  116.   STYLEBUFA = tagSTYLEBUFA;
  117.   {$EXTERNALSYM STYLEBUFW}
  118.   STYLEBUFW = tagSTYLEBUFW;
  119.   {$EXTERNALSYM STYLEBUF}
  120.   STYLEBUF = STYLEBUFA;
  121.  
  122. { prototype of IMM API }
  123.  
  124. {$EXTERNALSYM ImmInstallIMEA}
  125. function ImmInstallIMEA(lpszIMEFileName, lpszLayoutText: PAnsiChar): HKL; stdcall;
  126. {$EXTERNALSYM ImmInstallIMEW}
  127. function ImmInstallIMEW(lpszIMEFileName, lpszLayoutText: PWideChar): HKL; stdcall;
  128. {$EXTERNALSYM ImmInstallIME}
  129. function ImmInstallIME(lpszIMEFileName, lpszLayoutText: PChar): HKL; stdcall;
  130.  
  131. {$EXTERNALSYM ImmGetDefaultIMEWnd}
  132. function ImmGetDefaultIMEWnd(hWnd: HWND): HWND; stdcall;
  133.  
  134. {$EXTERNALSYM ImmGetDescriptionA}
  135. function ImmGetDescriptionA(hKl: HKL; PAnsiChar: PAnsiChar; uBufLen: UINT): UINT; stdcall;
  136. {$EXTERNALSYM ImmGetDescriptionW}
  137. function ImmGetDescriptionW(hKl: HKL; PWideChar: PWideChar; uBufLen: UINT): UINT; stdcall;
  138. {$EXTERNALSYM ImmGetDescription}
  139. function ImmGetDescription(hKl: HKL; PChar: PChar; uBufLen: UINT): UINT; stdcall;
  140.  
  141. {$EXTERNALSYM ImmGetIMEFileNameA}
  142. function ImmGetIMEFileNameA(hKl: HKL; PAnsiChar: PAnsiChar; uBufLen: UINT): UINT; stdcall;
  143. {$EXTERNALSYM ImmGetIMEFileNameW}
  144. function ImmGetIMEFileNameW(hKl: HKL; PWideChar: PWideChar; uBufLen: UINT): UINT; stdcall;
  145. {$EXTERNALSYM ImmGetIMEFileName}
  146. function ImmGetIMEFileName(hKl: HKL; PChar: PChar; uBufLen: UINT): UINT; stdcall;
  147.  
  148. {$EXTERNALSYM ImmGetProperty}
  149. function ImmGetProperty(hKl: HKL; dWord: DWORD): DWORD; stdcall;
  150.  
  151. {$EXTERNALSYM ImmIsIME}
  152. function ImmIsIME(hKl: HKL): Boolean; stdcall;
  153.  
  154. {$EXTERNALSYM ImmSimulateHotKey}
  155. function ImmSimulateHotKey(hWnd: HWND; dWord: DWORD): Boolean; stdcall;
  156.  
  157. {$EXTERNALSYM ImmCreateContext}
  158. function ImmCreateContext: HIMC; stdcall;
  159. {$EXTERNALSYM ImmDestroyContext}
  160. function ImmDestroyContext(hImc: HIMC): Boolean; stdcall;
  161. {$EXTERNALSYM ImmGetContext}
  162. function ImmGetContext(hWnd: HWND): HIMC; stdcall;
  163. {$EXTERNALSYM ImmReleaseContext}
  164. function ImmReleaseContext(hWnd: HWND; hImc: HIMC): Boolean; stdcall;
  165. {$EXTERNALSYM ImmAssociateContext}
  166. function ImmAssociateContext(hWnd: HWND; hImc: HIMC): HIMC; stdcall;
  167.  
  168. {$EXTERNALSYM ImmGetCompositionStringA}
  169. function ImmGetCompositionStringA(hImc: HIMC; dWord1: DWORD; lpBuf: pointer; dwBufLen: DWORD): Longint; stdcall;
  170. {$EXTERNALSYM ImmGetCompositionStringW}
  171. function ImmGetCompositionStringW(hImc: HIMC; dWord1: DWORD; lpBuf: pointer; dwBufLen: DWORD): Longint; stdcall;
  172. {$EXTERNALSYM ImmGetCompositionString}
  173. function ImmGetCompositionString(hImc: HIMC; dWord1: DWORD; lpBuf: pointer; dwBufLen: DWORD): Longint; stdcall;
  174.  
  175. {$EXTERNALSYM ImmSetCompositionStringA}
  176. function ImmSetCompositionStringA(hImc: HIMC; dwIndex: DWORD; lpComp: pointer; dwCompLen: DWORD; lpRead: pointer; dwReadLen: DWORD):Boolean; stdcall;
  177. {$EXTERNALSYM ImmSetCompositionStringW}
  178. function ImmSetCompositionStringW(hImc: HIMC; dwIndex: DWORD; lpComp: pointer; dwCompLen: DWORD; lpRead: pointer; dwReadLen: DWORD):Boolean; stdcall;
  179. {$EXTERNALSYM ImmSetCompositionString}
  180. function ImmSetCompositionString(hImc: HIMC; dwIndex: DWORD; lpComp: pointer; dwCompLen: DWORD; lpRead: pointer; dwReadLen: DWORD):Boolean; stdcall;
  181.  
  182. {$EXTERNALSYM ImmGetCandidateListCountA}
  183. function ImmGetCandidateListCountA(hImc: HIMC; var ListCount: DWORD): DWORD; stdcall;
  184. {$EXTERNALSYM ImmGetCandidateListCountW}
  185. function ImmGetCandidateListCountW(hImc: HIMC; var ListCount: DWORD): DWORD; stdcall;
  186. {$EXTERNALSYM ImmGetCandidateListCount}
  187. function ImmGetCandidateListCount(hImc: HIMC; var ListCount: DWORD): DWORD; stdcall;
  188.  
  189. {$EXTERNALSYM ImmGetCandidateListA}
  190. function ImmGetCandidateListA(hImc: HIMC; deIndex: DWORD; lpCandidateList: PCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall;
  191. {$EXTERNALSYM ImmGetCandidateListW}
  192. function ImmGetCandidateListW(hImc: HIMC; deIndex: DWORD; lpCandidateList: PCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall;
  193. {$EXTERNALSYM ImmGetCandidateList}
  194. function ImmGetCandidateList(hImc: HIMC; deIndex: DWORD; lpCandidateList: PCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall;
  195.  
  196. {$EXTERNALSYM ImmGetGuideLineA}
  197. function ImmGetGuideLineA(hImc: HIMC; dwIndex: DWORD; lpBuf: PAnsiChar; dwBufLen: DWORD): DWORD; stdcall;
  198. {$EXTERNALSYM ImmGetGuideLineW}
  199. function ImmGetGuideLineW(hImc: HIMC; dwIndex: DWORD; lpBuf: PWideChar; dwBufLen: DWORD): DWORD; stdcall;
  200. {$EXTERNALSYM ImmGetGuideLine}
  201. function ImmGetGuideLine(hImc: HIMC; dwIndex: DWORD; lpBuf: PChar; dwBufLen: DWORD): DWORD; stdcall;
  202.  
  203. {$EXTERNALSYM ImmGetConversionStatus}
  204. function ImmGetConversionStatus(hImc: HIMC; var Conversion, Sentence: DWORD): Boolean; stdcall;
  205. {$EXTERNALSYM ImmSetConversionStatus}
  206. function ImmSetConversionStatus(hImc: HIMC; Conversion, Sentence: DWORD): Boolean; stdcall;
  207. {$EXTERNALSYM ImmGetOpenStatus}
  208. function ImmGetOpenStatus(hImc: HIMC): Boolean; stdcall;
  209. {$EXTERNALSYM ImmSetOpenStatus}
  210. function ImmSetOpenStatus(hImc: HIMC; fOpen: Boolean): Boolean; stdcall;
  211.  
  212. {$EXTERNALSYM ImmGetCompositionFontA}
  213. function ImmGetCompositionFontA(hImc: HIMC; lpLogfont: PLOGFONTA): Boolean; stdcall;
  214. {$EXTERNALSYM ImmGetCompositionFontW}
  215. function ImmGetCompositionFontW(hImc: HIMC; lpLogfont: PLOGFONTW): Boolean; stdcall;
  216. {$EXTERNALSYM ImmGetCompositionFont}
  217. function ImmGetCompositionFont(hImc: HIMC; lpLogfont: PLOGFONT): Boolean; stdcall;
  218.  
  219. {$EXTERNALSYM ImmSetCompositionFontA}
  220. function ImmSetCompositionFontA(hImc: HIMC; lpLogfont: PLOGFONTA): Boolean; stdcall;
  221. {$EXTERNALSYM ImmSetCompositionFontW}
  222. function ImmSetCompositionFontW(hImc: HIMC; lpLogfont: PLOGFONTW): Boolean; stdcall;
  223. {$EXTERNALSYM ImmSetCompositionFont}
  224. function ImmSetCompositionFont(hImc: HIMC; lpLogfont: PLOGFONT): Boolean; stdcall;
  225.  
  226. {$EXTERNALSYM ImmConfigureIMEA}
  227. function ImmConfigureIMEA(hKl: HKL; hWnd: HWND; dwMode: DWORD; lpData: pointer): Boolean; stdcall;
  228. {$EXTERNALSYM ImmConfigureIMEW}
  229. function ImmConfigureIMEW(hKl: HKL; hWnd: HWND; dwMode: DWORD; lpData: pointer): Boolean; stdcall;
  230. {$EXTERNALSYM ImmConfigureIME}
  231. function ImmConfigureIME(hKl: HKL; hWnd: HWND; dwMode: DWORD; lpData: pointer): Boolean; stdcall;
  232.  
  233. {$EXTERNALSYM ImmEscapeA}
  234. function ImmEscapeA(hKl: HKL; hImc: HIMC; uEscape: UINT; lpData: pointer): LRESULT; stdcall;
  235. {$EXTERNALSYM ImmEscapeW}
  236. function ImmEscapeW(hKl: HKL; hImc: HIMC; uEscape: UINT; lpData: pointer): LRESULT; stdcall;
  237. {$EXTERNALSYM ImmEscape}
  238. function ImmEscape(hKl: HKL; hImc: HIMC; uEscape: UINT; lpData: pointer): LRESULT; stdcall;
  239.  
  240. {$EXTERNALSYM ImmGetConversionListA}
  241. function ImmGetConversionListA(hKl: HKL; hImc: HIMC; lpSrc: PAnsiChar; lpDst: PCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT ): DWORD; stdcall;
  242. {$EXTERNALSYM ImmGetConversionListW}
  243. function ImmGetConversionListW(hKl: HKL; hImc: HIMC; lpSrc: PWideChar; lpDst: PCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT ): DWORD; stdcall;
  244. {$EXTERNALSYM ImmGetConversionList}
  245. function ImmGetConversionList(hKl: HKL; hImc: HIMC; lpSrc: PChar; lpDst: PCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT ): DWORD; stdcall;
  246.  
  247. {$EXTERNALSYM ImmNotifyIME}
  248. function ImmNotifyIME(hImc: HIMC; dwAction, dwIndex, dwValue: DWORD): Boolean; stdcall;
  249.  
  250. {$EXTERNALSYM ImmGetStatusWindowPos}
  251. function ImmGetStatusWindowPos(hImc: HIMC; var lpPoint : TPoint): Boolean; stdcall;
  252. {$EXTERNALSYM ImmSetStatusWindowPos}
  253. function ImmSetStatusWindowPos(hImc: HIMC; lpPoint: PPOINT): Boolean; stdcall;
  254. {$EXTERNALSYM ImmGetCompositionWindow}
  255. function ImmGetCompositionWindow(hImc: HIMC; lpCompForm: PCOMPOSITIONFORM): Boolean; stdcall;
  256. {$EXTERNALSYM ImmSetCompositionWindow}
  257. function ImmSetCompositionWindow(hImc: HIMC; lpCompForm: PCOMPOSITIONFORM): Boolean; stdcall;
  258. {$EXTERNALSYM ImmGetCandidateWindow}
  259. function ImmGetCandidateWindow(hImc: HIMC; dwBufLen: DWORD; lpCandidate: PCANDIDATEFORM): Boolean; stdcall;
  260. {$EXTERNALSYM ImmSetCandidateWindow}
  261. function ImmSetCandidateWindow(hImc: HIMC; lpCandidate: PCANDIDATEFORM): Boolean; stdcall;
  262.  
  263. {$EXTERNALSYM ImmIsUIMessageA}
  264. function ImmIsUIMessageA(hWnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): Boolean; stdcall;
  265. {$EXTERNALSYM ImmIsUIMessageW}
  266. function ImmIsUIMessageW(hWnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): Boolean; stdcall;
  267. {$EXTERNALSYM ImmIsUIMessage}
  268. function ImmIsUIMessage(hWnd: HWND; msg: UINT; wParam: WPARAM; lParam: LPARAM): Boolean; stdcall;
  269.  
  270. {$EXTERNALSYM ImmGetVirtualKey}
  271. function ImmGetVirtualKey(hWnd: HWND): UINT; stdcall;
  272.  
  273. type
  274.   RegisterWordEnumProcA = Function(lpReading: PAnsiChar; dwStyle: DWORD; lpszString: PAnsiChar; lpData: pointer): integer;
  275.   RegisterWordEnumProcW = Function(lpReading: PWideChar; dwStyle: DWORD; lpszString: PWideChar; lpData: pointer): integer;
  276.   RegisterWordEnumProc = RegisterWordEnumProcA;
  277.  
  278. {$EXTERNALSYM ImmRegisterWordA}
  279. function ImmRegisterWordA(hKl: HKL; lpszReading: PAnsiChar; dwStyle: DWORD; lpszRegister: PAnsiChar): Boolean; stdcall;
  280. {$EXTERNALSYM ImmRegisterWordW}
  281. function ImmRegisterWordW(hKl: HKL; lpszReading: PWideChar; dwStyle: DWORD; lpszRegister: PWideChar): Boolean; stdcall;
  282. {$EXTERNALSYM ImmRegisterWord}
  283. function ImmRegisterWord(hKl: HKL; lpszReading: PChar; dwStyle: DWORD; lpszRegister: PChar): Boolean; stdcall;
  284.  
  285. {$EXTERNALSYM ImmUnregisterWordA}
  286. function ImmUnregisterWordA(hKl: HKL; lpszReading: PAnsiChar; dwStyle: DWORD; lpszUnregister: PAnsiChar): Boolean; stdcall;
  287. {$EXTERNALSYM ImmUnregisterWordW}
  288. function ImmUnregisterWordW(hKl: HKL; lpszReading: PWideChar; dwStyle: DWORD; lpszUnregister: PWideChar): Boolean; stdcall;
  289. {$EXTERNALSYM ImmUnregisterWord}
  290. function ImmUnregisterWord(hKl: HKL; lpszReading: PChar; dwStyle: DWORD; lpszUnregister: PChar): Boolean; stdcall;
  291.  
  292. {$EXTERNALSYM ImmGetRegisterWordStyleA}
  293. function ImmGetRegisterWordStyleA(hKl: HKL; nItem: UINT; lpStyleBuf: PSTYLEBUFA): UINT; stdcall;
  294. {$EXTERNALSYM ImmGetRegisterWordStyleW}
  295. function ImmGetRegisterWordStyleW(hKl: HKL; nItem: UINT; lpStyleBuf: PSTYLEBUFW): UINT; stdcall;
  296. {$EXTERNALSYM ImmGetRegisterWordStyle}
  297. function ImmGetRegisterWordStyle(hKl: HKL; nItem: UINT; lpStyleBuf: PSTYLEBUF): UINT; stdcall;
  298.  
  299. {$EXTERNALSYM ImmEnumRegisterWordA}
  300. function ImmEnumRegisterWordA(hKl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCA; lpszReading: PAnsiChar; dwStyle: DWORD; lpszRegister: PAnsiChar; lpData : pointer): UINT; stdcall;
  301. {$EXTERNALSYM ImmEnumRegisterWordW}
  302. function ImmEnumRegisterWordW(hKl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCW; lpszReading: PWideChar; dwStyle: DWORD; lpszRegister: PWideChar; lpData : pointer): UINT; stdcall;
  303. {$EXTERNALSYM ImmEnumRegisterWord}
  304. function ImmEnumRegisterWord(hKl: HKL; lpfnEnumProc: REGISTERWORDENUMPROC; lpszReading: PChar; dwStyle: DWORD; lpszRegister: PChar; lpData : pointer): UINT; stdcall;
  305.  
  306. const
  307. { the IME related messages  ( removed in 4.0 SDK }
  308.   WM_CONVERTREQUESTEX            = $0108;
  309.   {$EXTERNALSYM WM_IME_STARTCOMPOSITION}
  310.   WM_IME_STARTCOMPOSITION        = $010D;
  311.   {$EXTERNALSYM WM_IME_ENDCOMPOSITION}
  312.   WM_IME_ENDCOMPOSITION          = $010E;
  313.   {$EXTERNALSYM WM_IME_COMPOSITION}
  314.   WM_IME_COMPOSITION             = $010F;
  315.   {$EXTERNALSYM WM_IME_KEYLAST}
  316.   WM_IME_KEYLAST                 = $010F;
  317.  
  318.   {$EXTERNALSYM WM_IME_SETCONTEXT}
  319.   WM_IME_SETCONTEXT              = $0281;
  320.   {$EXTERNALSYM WM_IME_NOTIFY}
  321.   WM_IME_NOTIFY                  = $0282;
  322.   {$EXTERNALSYM WM_IME_CONTROL}
  323.   WM_IME_CONTROL                 = $0283;
  324.   {$EXTERNALSYM WM_IME_COMPOSITIONFULL}
  325.   WM_IME_COMPOSITIONFULL         = $0284;
  326.   {$EXTERNALSYM WM_IME_SELECT}
  327.   WM_IME_SELECT                  = $0285;
  328.   {$EXTERNALSYM WM_IME_CHAR}
  329.   WM_IME_CHAR                    = $0286;
  330.  
  331.   {$EXTERNALSYM WM_IME_KEYDOWN}
  332.   WM_IME_KEYDOWN                 = $0290;
  333.   {$EXTERNALSYM WM_IME_KEYUP}
  334.   WM_IME_KEYUP                   = $0291;
  335.  
  336. { wParam for WM_IME_CONTROL }
  337.   {$EXTERNALSYM IMC_GETCANDIDATEPOS}
  338.   IMC_GETCANDIDATEPOS            = $0007;
  339.   {$EXTERNALSYM IMC_SETCANDIDATEPOS}
  340.   IMC_SETCANDIDATEPOS            = $0008;
  341.   {$EXTERNALSYM IMC_GETCOMPOSITIONFONT}
  342.   IMC_GETCOMPOSITIONFONT         = $0009;
  343.   {$EXTERNALSYM IMC_SETCOMPOSITIONFONT}
  344.   IMC_SETCOMPOSITIONFONT         = $000A;
  345.   {$EXTERNALSYM IMC_GETCOMPOSITIONWINDOW}
  346.   IMC_GETCOMPOSITIONWINDOW       = $000B;
  347.   {$EXTERNALSYM IMC_SETCOMPOSITIONWINDOW}
  348.   IMC_SETCOMPOSITIONWINDOW       = $000C;
  349.   {$EXTERNALSYM IMC_GETSTATUSWINDOWPOS}
  350.   IMC_GETSTATUSWINDOWPOS         = $000F;
  351.   {$EXTERNALSYM IMC_SETSTATUSWINDOWPOS}
  352.   IMC_SETSTATUSWINDOWPOS         = $0010;
  353.   {$EXTERNALSYM IMC_CLOSESTATUSWINDOW}
  354.   IMC_CLOSESTATUSWINDOW          = $0021;
  355.   {$EXTERNALSYM IMC_OPENSTATUSWINDOW}
  356.   IMC_OPENSTATUSWINDOW           = $0022;
  357.  
  358. { wParam for WM_IME_CONTROL to the soft keyboard }
  359. { dwAction for ImmNotifyIME }
  360.   {$EXTERNALSYM NI_OPENCANDIDATE}
  361.   NI_OPENCANDIDATE               = $0010;
  362.   {$EXTERNALSYM NI_CLOSECANDIDATE}
  363.   NI_CLOSECANDIDATE              = $0011;
  364.   {$EXTERNALSYM NI_SELECTCANDIDATESTR}
  365.   NI_SELECTCANDIDATESTR          = $0012;
  366.   {$EXTERNALSYM NI_CHANGECANDIDATELIST}
  367.   NI_CHANGECANDIDATELIST         = $0013;
  368.   {$EXTERNALSYM NI_FINALIZECONVERSIONRESULT}
  369.   NI_FINALIZECONVERSIONRESULT    = $0014;
  370.   {$EXTERNALSYM NI_COMPOSITIONSTR}
  371.   NI_COMPOSITIONSTR              = $0015;
  372.   {$EXTERNALSYM NI_SETCANDIDATE_PAGESTART}
  373.   NI_SETCANDIDATE_PAGESTART      = $0016;
  374.   {$EXTERNALSYM NI_SETCANDIDATE_PAGESIZE}
  375.   NI_SETCANDIDATE_PAGESIZE       = $0017;
  376.  
  377. { lParam for WM_IME_SETCONTEXT }
  378.   {$EXTERNALSYM ISC_SHOWUICANDIDATEWINDOW}
  379.   ISC_SHOWUICANDIDATEWINDOW      = $00000001;
  380.   {$EXTERNALSYM ISC_SHOWUICOMPOSITIONWINDOW}
  381.   ISC_SHOWUICOMPOSITIONWINDOW    = $80000000;
  382.   {$EXTERNALSYM ISC_SHOWUIGUIDELINE}
  383.   ISC_SHOWUIGUIDELINE            = $40000000;
  384.   {$EXTERNALSYM ISC_SHOWUIALLCANDIDATEWINDOW}
  385.   ISC_SHOWUIALLCANDIDATEWINDOW   = $0000000F;
  386.   {$EXTERNALSYM ISC_SHOWUIALL}
  387.   ISC_SHOWUIALL                  = $C000000F;
  388.  
  389. { dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR }
  390.   {$EXTERNALSYM CPS_COMPLETE}
  391.   CPS_COMPLETE                   = $0001;
  392.   {$EXTERNALSYM CPS_CONVERT}
  393.   CPS_CONVERT                    = $0002;
  394.   {$EXTERNALSYM CPS_REVERT}
  395.   CPS_REVERT                     = $0003;
  396.   {$EXTERNALSYM CPS_CANCEL}
  397.   CPS_CANCEL                     = $0004;
  398.  
  399. { the modifiers of hot key }
  400.   {$EXTERNALSYM MOD_ALT}
  401.   MOD_ALT                        = $0001;
  402.   {$EXTERNALSYM MOD_CONTROL}
  403.   MOD_CONTROL                    = $0002;
  404.   {$EXTERNALSYM MOD_SHIFT}
  405.   MOD_SHIFT                      = $0004;
  406.  
  407.   {$EXTERNALSYM MOD_LEFT}
  408.   MOD_LEFT                       = $8000;
  409.   {$EXTERNALSYM MOD_RIGHT}
  410.   MOD_RIGHT                      = $4000;
  411.  
  412.   {$EXTERNALSYM MOD_ON_KEYUP}
  413.   MOD_ON_KEYUP                   = $0800;
  414.   {$EXTERNALSYM MOD_IGNORE_ALL_MODIFIER}
  415.   MOD_IGNORE_ALL_MODIFIER        = $0400;
  416.  
  417. { Windows for Simplified Chinese Edition hot key ID from #10 - #2F }
  418.   {$EXTERNALSYM IME_CHOTKEY_IME_NONIME_TOGGLE}
  419.   IME_CHOTKEY_IME_NONIME_TOGGLE          = $10;
  420.   {$EXTERNALSYM IME_CHOTKEY_SHAPE_TOGGLE}
  421.   IME_CHOTKEY_SHAPE_TOGGLE               = $11;
  422.   {$EXTERNALSYM IME_CHOTKEY_SYMBOL_TOGGLE}
  423.   IME_CHOTKEY_SYMBOL_TOGGLE              = $12;
  424.  
  425. { Windows for Japanese Edition hot key ID from #30 - #4F }
  426.   {$EXTERNALSYM IME_JHOTKEY_CLOSE_OPEN}
  427.   IME_JHOTKEY_CLOSE_OPEN                 = $30;
  428.  
  429. { Windows for Korean Edition hot key ID from #50 - #6F }
  430.   {$EXTERNALSYM IME_KHOTKEY_SHAPE_TOGGLE}
  431.   IME_KHOTKEY_SHAPE_TOGGLE               = $50;
  432.   {$EXTERNALSYM IME_KHOTKEY_HANJACONVERT}
  433.   IME_KHOTKEY_HANJACONVERT               = $51;
  434.   {$EXTERNALSYM IME_KHOTKEY_ENGLISH}
  435.   IME_KHOTKEY_ENGLISH                    = $52;
  436.  
  437. { Windows for Tranditional Chinese Edition hot key ID from #70 - #8F }
  438.   {$EXTERNALSYM IME_THOTKEY_IME_NONIME_TOGGLE}
  439.   IME_THOTKEY_IME_NONIME_TOGGLE          = $70;
  440.   {$EXTERNALSYM IME_THOTKEY_SHAPE_TOGGLE}
  441.   IME_THOTKEY_SHAPE_TOGGLE               = $71;
  442.   {$EXTERNALSYM IME_THOTKEY_SYMBOL_TOGGLE}
  443.   IME_THOTKEY_SYMBOL_TOGGLE              = $72;
  444.  
  445. { direct switch hot key ID from #100 - #11F }
  446.   {$EXTERNALSYM IME_HOTKEY_DSWITCH_FIRST}
  447.   IME_HOTKEY_DSWITCH_FIRST               = $100;
  448.   {$EXTERNALSYM IME_HOTKEY_DSWITCH_LAST}
  449.   IME_HOTKEY_DSWITCH_LAST                = $11F;
  450.  
  451. { IME private hot key from #200 - #21F }
  452.   {$EXTERNALSYM IME_HOTKEY_PRIVATE_FIRST}
  453.   IME_HOTKEY_PRIVATE_FIRST               = $200;
  454.   {$EXTERNALSYM IME_ITHOTKEY_RESEND_RESULTSTR}
  455.   IME_ITHOTKEY_RESEND_RESULTSTR          = $200;
  456.   {$EXTERNALSYM IME_ITHOTKEY_PREVIOUS_COMPOSITION}
  457.   IME_ITHOTKEY_PREVIOUS_COMPOSITION      = $201;
  458.   {$EXTERNALSYM IME_ITHOTKEY_UISTYLE_TOGGLE}
  459.   IME_ITHOTKEY_UISTYLE_TOGGLE            = $202;
  460.   {$EXTERNALSYM IME_HOTKEY_PRIVATE_LAST}
  461.   IME_HOTKEY_PRIVATE_LAST                = $21F;
  462.  
  463. { parameter of ImmGetCompositionString }
  464.   {$EXTERNALSYM GCS_COMPREADSTR}
  465.   GCS_COMPREADSTR                = $0001;
  466.   {$EXTERNALSYM GCS_COMPREADATTR}
  467.   GCS_COMPREADATTR               = $0002;
  468.   {$EXTERNALSYM GCS_COMPREADCLAUSE}
  469.   GCS_COMPREADCLAUSE             = $0004;
  470.   {$EXTERNALSYM GCS_COMPSTR}
  471.   GCS_COMPSTR                    = $0008;
  472.   {$EXTERNALSYM GCS_COMPATTR}
  473.   GCS_COMPATTR                   = $0010;
  474.   {$EXTERNALSYM GCS_COMPCLAUSE}
  475.   GCS_COMPCLAUSE                 = $0020;
  476.   {$EXTERNALSYM GCS_CURSORPOS}
  477.   GCS_CURSORPOS                  = $0080;
  478.   {$EXTERNALSYM GCS_DELTASTART}
  479.   GCS_DELTASTART                 = $0100;
  480.   {$EXTERNALSYM GCS_RESULTREADSTR}
  481.   GCS_RESULTREADSTR              = $0200;
  482.   {$EXTERNALSYM GCS_RESULTREADCLAUSE}
  483.   GCS_RESULTREADCLAUSE           = $0400;
  484.   {$EXTERNALSYM GCS_RESULTSTR}
  485.   GCS_RESULTSTR                  = $0800;
  486.   {$EXTERNALSYM GCS_RESULTCLAUSE}
  487.   GCS_RESULTCLAUSE               = $1000;
  488.  
  489. { style bit flags for WM_IME_COMPOSITION }
  490.   {$EXTERNALSYM CS_INSERTCHAR}
  491.   CS_INSERTCHAR                  = $2000;
  492.   {$EXTERNALSYM CS_NOMOVECARET}
  493.   CS_NOMOVECARET                 = $4000;
  494.  
  495. { bits of fdwInit of INPUTCONTEXT }
  496. { IME version constants }
  497.   {$EXTERNALSYM IMEVER_0310}
  498.   IMEVER_0310                    = $0003000A;
  499.   {$EXTERNALSYM IMEVER_0400}
  500.   IMEVER_0400                    = $00040000;
  501.  
  502. { IME property bits }
  503.   {$EXTERNALSYM IME_PROP_AT_CARET}
  504.   IME_PROP_AT_CARET              = $00010000;
  505.   {$EXTERNALSYM IME_PROP_SPECIAL_UI}
  506.   IME_PROP_SPECIAL_UI            = $00020000;
  507.   {$EXTERNALSYM IME_PROP_CANDLIST_START_FROM_1}
  508.   IME_PROP_CANDLIST_START_FROM_1 = $00040000;
  509.   {$EXTERNALSYM IME_PROP_UNICODE}
  510.   IME_PROP_UNICODE               = $00080000;
  511.  
  512. { IME UICapability bits }
  513.   {$EXTERNALSYM UI_CAP_2700}
  514.   UI_CAP_2700                    = $00000001;
  515.   {$EXTERNALSYM UI_CAP_ROT90}
  516.   UI_CAP_ROT90                   = $00000002;
  517.   {$EXTERNALSYM UI_CAP_ROTANY}
  518.   UI_CAP_ROTANY                  = $00000004;
  519.  
  520. { ImmSetCompositionString Capability bits }
  521.   {$EXTERNALSYM SCS_CAP_COMPSTR}
  522.   SCS_CAP_COMPSTR                = $00000001;
  523.   {$EXTERNALSYM SCS_CAP_MAKEREAD}
  524.   SCS_CAP_MAKEREAD               = $00000002;
  525.  
  526. { IME WM_IME_SELECT inheritance Capability bits }
  527.   {$EXTERNALSYM SELECT_CAP_CONVERSION}
  528.   SELECT_CAP_CONVERSION          = $00000001;
  529.   {$EXTERNALSYM SELECT_CAP_SENTENCE}
  530.   SELECT_CAP_SENTENCE            = $00000002;
  531.  
  532. { ID for deIndex of ImmGetGuideLine }
  533.   {$EXTERNALSYM GGL_LEVEL}
  534.   GGL_LEVEL                      = $00000001;
  535.   {$EXTERNALSYM GGL_INDEX}
  536.   GGL_INDEX                      = $00000002;
  537.   {$EXTERNALSYM GGL_STRING}
  538.   GGL_STRING                     = $00000003;
  539.   {$EXTERNALSYM GGL_PRIVATE}
  540.   GGL_PRIVATE                    = $00000004;
  541.  
  542. { ID for dwLevel of GUIDELINE Structure }
  543.   {$EXTERNALSYM GL_LEVEL_NOGUIDELINE}
  544.   GL_LEVEL_NOGUIDELINE           = $00000000;
  545.   {$EXTERNALSYM GL_LEVEL_FATAL}
  546.   GL_LEVEL_FATAL                 = $00000001;
  547.   {$EXTERNALSYM GL_LEVEL_ERROR}
  548.   GL_LEVEL_ERROR                 = $00000002;
  549.   {$EXTERNALSYM GL_LEVEL_WARNING}
  550.   GL_LEVEL_WARNING               = $00000003;
  551.   {$EXTERNALSYM GL_LEVEL_INFORMATION}
  552.   GL_LEVEL_INFORMATION           = $00000004;
  553.  
  554. { ID for dwIndex of GUIDELINE Structure }
  555.   {$EXTERNALSYM GL_ID_UNKNOWN}
  556.   GL_ID_UNKNOWN                  = $00000000;
  557.   {$EXTERNALSYM GL_ID_NOMODULE}
  558.   GL_ID_NOMODULE                 = $00000001;
  559.   {$EXTERNALSYM GL_ID_NODICTIONARY}
  560.   GL_ID_NODICTIONARY             = $00000010;
  561.   {$EXTERNALSYM GL_ID_CANNOTSAVE}
  562.   GL_ID_CANNOTSAVE               = $00000011;
  563.   {$EXTERNALSYM GL_ID_NOCONVERT}
  564.   GL_ID_NOCONVERT                = $00000020;
  565.   {$EXTERNALSYM GL_ID_TYPINGERROR}
  566.   GL_ID_TYPINGERROR              = $00000021;
  567.   {$EXTERNALSYM GL_ID_TOOMANYSTROKE}
  568.   GL_ID_TOOMANYSTROKE            = $00000022;
  569.   {$EXTERNALSYM GL_ID_READINGCONFLICT}
  570.   GL_ID_READINGCONFLICT          = $00000023;
  571.   {$EXTERNALSYM GL_ID_INPUTREADING}
  572.   GL_ID_INPUTREADING             = $00000024;
  573.   {$EXTERNALSYM GL_ID_INPUTRADICAL}
  574.   GL_ID_INPUTRADICAL             = $00000025;
  575.   {$EXTERNALSYM GL_ID_INPUTCODE}
  576.   GL_ID_INPUTCODE                = $00000026;
  577.   {$EXTERNALSYM GL_ID_INPUTSYMBOL}
  578.   GL_ID_INPUTSYMBOL              = $00000027;
  579.   {$EXTERNALSYM GL_ID_CHOOSECANDIDATE}
  580.   GL_ID_CHOOSECANDIDATE          = $00000028;
  581.   {$EXTERNALSYM GL_ID_REVERSECONVERSION}
  582.   GL_ID_REVERSECONVERSION        = $00000029;
  583.   {$EXTERNALSYM GL_ID_PRIVATE_FIRST}
  584.   GL_ID_PRIVATE_FIRST            = $00008000;
  585.   {$EXTERNALSYM GL_ID_PRIVATE_LAST}
  586.   GL_ID_PRIVATE_LAST             = $0000FFFF;
  587.  
  588. { ID for dwIndex of ImmGetProperty }
  589.   {$EXTERNALSYM IGP_GETIMEVERSION}
  590.   IGP_GETIMEVERSION              = 4;
  591.   {$EXTERNALSYM IGP_PROPERTY}
  592.   IGP_PROPERTY                   = $00000004;
  593.   {$EXTERNALSYM IGP_CONVERSION}
  594.   IGP_CONVERSION                 = $00000008;
  595.   {$EXTERNALSYM IGP_SENTENCE}
  596.   IGP_SENTENCE                   = $0000000c;
  597.   {$EXTERNALSYM IGP_UI}
  598.   IGP_UI                         = $00000010;
  599.   {$EXTERNALSYM IGP_SETCOMPSTR}
  600.   IGP_SETCOMPSTR                 = $00000014;
  601.   {$EXTERNALSYM IGP_SELECT}
  602.   IGP_SELECT                     = $00000018;
  603.  
  604. { dwIndex for ImmSetCompositionString API }
  605.   {$EXTERNALSYM SCS_SETSTR}
  606.   SCS_SETSTR                     = (GCS_COMPREADSTR or GCS_COMPSTR);
  607.   {$EXTERNALSYM SCS_CHANGEATTR}
  608.   SCS_CHANGEATTR                 = (GCS_COMPREADATTR or GCS_COMPATTR);
  609.   {$EXTERNALSYM SCS_CHANGECLAUSE}
  610.   SCS_CHANGECLAUSE               = (GCS_COMPREADCLAUSE or GCS_COMPCLAUSE);
  611.  
  612. { attribute for COMPOSITIONSTRING Structure }
  613.   {$EXTERNALSYM ATTR_INPUT}
  614.   ATTR_INPUT                     = $00;
  615.   {$EXTERNALSYM ATTR_TARGET_CONVERTED}
  616.   ATTR_TARGET_CONVERTED          = $01;
  617.   {$EXTERNALSYM ATTR_CONVERTED}
  618.   ATTR_CONVERTED                 = $02;
  619.   {$EXTERNALSYM ATTR_TARGET_NOTCONVERTED}
  620.   ATTR_TARGET_NOTCONVERTED       = $03;
  621.   {$EXTERNALSYM ATTR_INPUT_ERROR}
  622.   ATTR_INPUT_ERROR               = $04;
  623.  
  624. { bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW }
  625.   {$EXTERNALSYM CFS_DEFAULT}
  626.   CFS_DEFAULT                    = $0000;
  627.   {$EXTERNALSYM CFS_RECT}
  628.   CFS_RECT                       = $0001;
  629.   {$EXTERNALSYM CFS_POINT}
  630.   CFS_POINT                      = $0002;
  631.   CFS_SCREEN                     = $0004;    { removed in 4.0 SDK }
  632.   {$EXTERNALSYM CFS_FORCE_POSITION}
  633.   CFS_FORCE_POSITION             = $0020;
  634.   {$EXTERNALSYM CFS_CANDIDATEPOS}
  635.   CFS_CANDIDATEPOS               = $0040;
  636.   {$EXTERNALSYM CFS_EXCLUDE}
  637.   CFS_EXCLUDE                    = $0080;
  638.  
  639. { conversion direction for ImmGetConversionList }
  640.   {$EXTERNALSYM GCL_CONVERSION}
  641.   GCL_CONVERSION                 = $0001;
  642.   {$EXTERNALSYM GCL_REVERSECONVERSION}
  643.   GCL_REVERSECONVERSION          = $0002;
  644.   {$EXTERNALSYM GCL_REVERSE_LENGTH}
  645.   GCL_REVERSE_LENGTH             = $0003;
  646.  
  647. { bit field for conversion mode }
  648.   {$EXTERNALSYM IME_CMODE_ALPHANUMERIC}
  649.   IME_CMODE_ALPHANUMERIC         = $0000;
  650.   {$EXTERNALSYM IME_CMODE_NATIVE}
  651.   IME_CMODE_NATIVE               = $0001;
  652.   {$EXTERNALSYM IME_CMODE_CHINESE}
  653.   IME_CMODE_CHINESE              = IME_CMODE_NATIVE;
  654.   {$EXTERNALSYM IME_CMODE_HANGEUL}
  655.   IME_CMODE_HANGEUL              = IME_CMODE_NATIVE;
  656.   {$EXTERNALSYM IME_CMODE_HANGUL}
  657.   IME_CMODE_HANGUL               = IME_CMODE_NATIVE;
  658.   {$EXTERNALSYM IME_CMODE_JAPANESE}
  659.   IME_CMODE_JAPANESE             = IME_CMODE_NATIVE;
  660.   {$EXTERNALSYM IME_CMODE_KATAKANA}
  661.   IME_CMODE_KATAKANA             = $0002;  { effective only under IME_CMODE_NATIVE}
  662.   {$EXTERNALSYM IME_CMODE_LANGUAGE}
  663.   IME_CMODE_LANGUAGE             = $0003;
  664.   {$EXTERNALSYM IME_CMODE_FULLSHAPE}
  665.   IME_CMODE_FULLSHAPE            = $0008;
  666.   {$EXTERNALSYM IME_CMODE_ROMAN}
  667.   IME_CMODE_ROMAN                = $0010;
  668.   {$EXTERNALSYM IME_CMODE_CHARCODE}
  669.   IME_CMODE_CHARCODE             = $0020;
  670.   {$EXTERNALSYM IME_CMODE_HANJACONVERT}
  671.   IME_CMODE_HANJACONVERT         = $0040;
  672.   {$EXTERNALSYM IME_CMODE_SOFTKBD}
  673.   IME_CMODE_SOFTKBD              = $0080;
  674.   {$EXTERNALSYM IME_CMODE_NOCONVERSION}
  675.   IME_CMODE_NOCONVERSION         = $0100;
  676.   {$EXTERNALSYM IME_CMODE_EUDC}
  677.   IME_CMODE_EUDC                 = $0200;
  678.   {$EXTERNALSYM IME_CMODE_SYMBOL}
  679.   IME_CMODE_SYMBOL               = $0400;
  680.  
  681.   {$EXTERNALSYM IME_SMODE_NONE}
  682.   IME_SMODE_NONE                 = $0000;
  683.   {$EXTERNALSYM IME_SMODE_PLAURALCLAUSE}
  684.   IME_SMODE_PLAURALCLAUSE        = $0001;
  685.   {$EXTERNALSYM IME_SMODE_SINGLECONVERT}
  686.   IME_SMODE_SINGLECONVERT        = $0002;
  687.   {$EXTERNALSYM IME_SMODE_AUTOMATIC}
  688.   IME_SMODE_AUTOMATIC            = $0004;
  689.   {$EXTERNALSYM IME_SMODE_PHRASEPREDICT}
  690.   IME_SMODE_PHRASEPREDICT        = $0008;
  691.  
  692. { style of candidate }
  693.   {$EXTERNALSYM IME_CAND_UNKNOWN}
  694.   IME_CAND_UNKNOWN               = $0000;
  695.   {$EXTERNALSYM IME_CAND_READ}
  696.   IME_CAND_READ                  = $0001;
  697.   {$EXTERNALSYM IME_CAND_CODE}
  698.   IME_CAND_CODE                  = $0002;
  699.   {$EXTERNALSYM IME_CAND_MEANING}
  700.   IME_CAND_MEANING               = $0003;
  701.   {$EXTERNALSYM IME_CAND_RADICAL}
  702.   IME_CAND_RADICAL               = $0004;
  703.   {$EXTERNALSYM IME_CAND_STROKE}
  704.   IME_CAND_STROKE                = $0005;
  705.  
  706. { wParam of report message WM_IME_NOTIFY }
  707.   {$EXTERNALSYM IMN_CLOSESTATUSWINDOW}
  708.   IMN_CLOSESTATUSWINDOW          = $0001;
  709.   {$EXTERNALSYM IMN_OPENSTATUSWINDOW}
  710.   IMN_OPENSTATUSWINDOW           = $0002;
  711.   {$EXTERNALSYM IMN_CHANGECANDIDATE}
  712.   IMN_CHANGECANDIDATE            = $0003;
  713.   {$EXTERNALSYM IMN_CLOSECANDIDATE}
  714.   IMN_CLOSECANDIDATE             = $0004;
  715.   {$EXTERNALSYM IMN_OPENCANDIDATE}
  716.   IMN_OPENCANDIDATE              = $0005;
  717.   {$EXTERNALSYM IMN_SETCONVERSIONMODE}
  718.   IMN_SETCONVERSIONMODE          = $0006;
  719.   {$EXTERNALSYM IMN_SETSENTENCEMODE}
  720.   IMN_SETSENTENCEMODE            = $0007;
  721.   {$EXTERNALSYM IMN_SETOPENSTATUS}
  722.   IMN_SETOPENSTATUS              = $0008;
  723.   {$EXTERNALSYM IMN_SETCANDIDATEPOS}
  724.   IMN_SETCANDIDATEPOS            = $0009;
  725.   {$EXTERNALSYM IMN_SETCOMPOSITIONFONT}
  726.   IMN_SETCOMPOSITIONFONT         = $000A;
  727.   {$EXTERNALSYM IMN_SETCOMPOSITIONWINDOW}
  728.   IMN_SETCOMPOSITIONWINDOW       = $000B;
  729.   {$EXTERNALSYM IMN_SETSTATUSWINDOWPOS}
  730.   IMN_SETSTATUSWINDOWPOS         = $000C;
  731.   {$EXTERNALSYM IMN_GUIDELINE}
  732.   IMN_GUIDELINE                  = $000D;
  733.   {$EXTERNALSYM IMN_PRIVATE}
  734.   IMN_PRIVATE                    = $000E;
  735.  
  736. { error code of ImmGetCompositionString }
  737.   {$EXTERNALSYM IMM_ERROR_NODATA}
  738.   IMM_ERROR_NODATA               = -1;
  739.   {$EXTERNALSYM IMM_ERROR_GENERAL}
  740.   IMM_ERROR_GENERAL              = -2;
  741.  
  742. { dialog mode of ImmConfigureIME }
  743.   {$EXTERNALSYM IME_CONFIG_GENERAL}
  744.   IME_CONFIG_GENERAL             = 1;
  745.   {$EXTERNALSYM IME_CONFIG_REGISTERWORD}
  746.   IME_CONFIG_REGISTERWORD        = 2;
  747.   {$EXTERNALSYM IME_CONFIG_SELECTDICTIONARY}
  748.   IME_CONFIG_SELECTDICTIONARY    = 3;
  749.  
  750. { dialog mode of ImmEscape }
  751.   {$EXTERNALSYM IME_ESC_QUERY_SUPPORT}
  752.   IME_ESC_QUERY_SUPPORT          = $0003;
  753.   {$EXTERNALSYM IME_ESC_RESERVED_FIRST}
  754.   IME_ESC_RESERVED_FIRST         = $0004;
  755.   {$EXTERNALSYM IME_ESC_RESERVED_LAST}
  756.   IME_ESC_RESERVED_LAST          = $07FF;
  757.   {$EXTERNALSYM IME_ESC_PRIVATE_FIRST}
  758.   IME_ESC_PRIVATE_FIRST          = $0800;
  759.   {$EXTERNALSYM IME_ESC_PRIVATE_LAST}
  760.   IME_ESC_PRIVATE_LAST           = $0FFF;
  761.   {$EXTERNALSYM IME_ESC_SEQUENCE_TO_INTERNAL}
  762.   IME_ESC_SEQUENCE_TO_INTERNAL   = $1001;
  763.   {$EXTERNALSYM IME_ESC_GET_EUDC_DICTIONARY}
  764.   IME_ESC_GET_EUDC_DICTIONARY    = $1003;
  765.   {$EXTERNALSYM IME_ESC_SET_EUDC_DICTIONARY}
  766.   IME_ESC_SET_EUDC_DICTIONARY    = $1004;
  767.   {$EXTERNALSYM IME_ESC_MAX_KEY}
  768.   IME_ESC_MAX_KEY                = $1005;
  769.   {$EXTERNALSYM IME_ESC_IME_NAME}
  770.   IME_ESC_IME_NAME               = $1006;
  771.   {$EXTERNALSYM IME_ESC_SYNC_HOTKEY}
  772.   IME_ESC_SYNC_HOTKEY            = $1007;
  773.   {$EXTERNALSYM IME_ESC_HANJA_MODE}
  774.   IME_ESC_HANJA_MODE             = $1008;
  775.   {$EXTERNALSYM IME_ESC_AUTOMATA}
  776.   IME_ESC_AUTOMATA               = $1009;
  777.  
  778.   {$EXTERNALSYM IME_ESC_PRIVATE_HOTKEY}
  779.   IME_ESC_PRIVATE_HOTKEY         = $100A;
  780.   
  781. { style of word registration }
  782.   {$EXTERNALSYM IME_REGWORD_STYLE_EUDC}
  783.   IME_REGWORD_STYLE_EUDC         = $00000001;
  784.   {$EXTERNALSYM IME_REGWORD_STYLE_USER_FIRST}
  785.   IME_REGWORD_STYLE_USER_FIRST   = $80000000;
  786.   {$EXTERNALSYM IME_REGWORD_STYLE_USER_LAST}
  787.   IME_REGWORD_STYLE_USER_LAST    = $FFFFFFFF;
  788.  
  789. { type of soft keyboard }
  790. { for Windows Tranditional Chinese Edition }
  791.   {$EXTERNALSYM SOFTKEYBOARD_TYPE_T1}
  792.   SOFTKEYBOARD_TYPE_T1           = $0001;
  793. { for Windows Simplified Chinese Edition }
  794.   {$EXTERNALSYM SOFTKEYBOARD_TYPE_C1}
  795.   SOFTKEYBOARD_TYPE_C1           = $0002;
  796.  
  797. const
  798.   imm32 = 'imm32.dll';
  799.  
  800. implementation
  801.  
  802. {$EXTERNALSYM ImmInstallIMEA}
  803. function ImmInstallIMEA; external imm32 name 'ImmInstallIMEA';
  804. {$EXTERNALSYM ImmInstallIMEW}
  805. function ImmInstallIMEW; external imm32 name 'ImmInstallIMEW';
  806. {$EXTERNALSYM ImmInstallIME}
  807. function ImmInstallIME; external imm32 name 'ImmInstallIMEA';
  808.  
  809. {$EXTERNALSYM ImmGetDefaultIMEWnd}
  810. function ImmGetDefaultIMEWnd; external imm32 name 'ImmGetDefaultIMEWnd';
  811.  
  812. {$EXTERNALSYM ImmGetDescriptionA}
  813. function ImmGetDescriptionA; external imm32 name 'ImmGetDescriptionA';
  814. {$EXTERNALSYM ImmGetDescriptionW}
  815. function ImmGetDescriptionW; external imm32 name 'ImmGetDescriptionW';
  816. {$EXTERNALSYM ImmGetDescription}
  817. function ImmGetDescription; external imm32 name 'ImmGetDescriptionA';
  818.  
  819. {$EXTERNALSYM ImmGetIMEFileNameA}
  820. function ImmGetIMEFileNameA; external imm32 name 'ImmGetIMEFileNameA';
  821. {$EXTERNALSYM ImmGetIMEFileNameW}
  822. function ImmGetIMEFileNameW; external imm32 name 'ImmGetIMEFileNameW';
  823. {$EXTERNALSYM ImmGetIMEFileName}
  824. function ImmGetIMEFileName; external imm32 name 'ImmGetIMEFileNameA';
  825.  
  826. {$EXTERNALSYM ImmGetProperty}
  827. function ImmGetProperty; external imm32 name 'ImmGetProperty';
  828.  
  829. {$EXTERNALSYM ImmIsIME}
  830. function ImmIsIME; external imm32 name 'ImmIsIME';
  831.  
  832. {$EXTERNALSYM ImmSimulateHotKey}
  833. function ImmSimulateHotKey; external imm32 name 'ImmSimulateHotKey';
  834.  
  835. {$EXTERNALSYM ImmCreateContext}
  836. function ImmCreateContext; external imm32 name 'ImmCreateContext';
  837. {$EXTERNALSYM ImmDestroyContext}
  838. function ImmDestroyContext; external imm32 name 'ImmDestroyContext';
  839. {$EXTERNALSYM ImmGetContext}
  840. function ImmGetContext; external imm32 name 'ImmGetContext';
  841. {$EXTERNALSYM ImmReleaseContext}
  842. function ImmReleaseContext; external imm32 name 'ImmReleaseContext';
  843. {$EXTERNALSYM ImmAssociateContext}
  844. function ImmAssociateContext; external imm32 name 'ImmAssociateContext';
  845.  
  846. {$EXTERNALSYM ImmGetCompositionStringA}
  847. function ImmGetCompositionStringA; external imm32 name 'ImmGetCompositionStringA';
  848. {$EXTERNALSYM ImmGetCompositionStringW}
  849. function ImmGetCompositionStringW; external imm32 name 'ImmGetCompositionStringW';
  850. {$EXTERNALSYM ImmGetCompositionString}
  851. function ImmGetCompositionString; external imm32 name 'ImmGetCompositionStringA';
  852.  
  853. {$EXTERNALSYM ImmSetCompositionStringA}
  854. function ImmSetCompositionStringA; external imm32 name 'ImmSetCompositionStringA';
  855. {$EXTERNALSYM ImmSetCompositionStringW}
  856. function ImmSetCompositionStringW; external imm32 name 'ImmSetCompositionStringW';
  857. {$EXTERNALSYM ImmSetCompositionString}
  858. function ImmSetCompositionString; external imm32 name 'ImmSetCompositionStringA';
  859.  
  860. {$EXTERNALSYM ImmGetCandidateListCountA}
  861. function ImmGetCandidateListCountA; external imm32 name 'ImmGetCandidateListCountA';
  862. {$EXTERNALSYM ImmGetCandidateListCountW}
  863. function ImmGetCandidateListCountW; external imm32 name 'ImmGetCandidateListCountW';
  864. {$EXTERNALSYM ImmGetCandidateListCount}
  865. function ImmGetCandidateListCount; external imm32 name 'ImmGetCandidateListCountA';
  866.  
  867. {$EXTERNALSYM ImmGetCandidateListA}
  868. function ImmGetCandidateListA; external imm32 name 'ImmGetCandidateListA';
  869. {$EXTERNALSYM ImmGetCandidateListW}
  870. function ImmGetCandidateListW; external imm32 name 'ImmGetCandidateListW';
  871. {$EXTERNALSYM ImmGetCandidateList}
  872. function ImmGetCandidateList; external imm32 name 'ImmGetCandidateListA';
  873.  
  874. {$EXTERNALSYM ImmGetGuideLineA}
  875. function ImmGetGuideLineA; external imm32 name 'ImmGetGuideLineA';
  876. {$EXTERNALSYM ImmGetGuideLineW}
  877. function ImmGetGuideLineW; external imm32 name 'ImmGetGuideLineW';
  878. {$EXTERNALSYM ImmGetGuideLine}
  879. function ImmGetGuideLine; external imm32 name 'ImmGetGuideLineA';
  880.  
  881. {$EXTERNALSYM ImmGetConversionStatus}
  882. function ImmGetConversionStatus; external imm32 name 'ImmGetConversionStatus';
  883. {$EXTERNALSYM ImmSetConversionStatus}
  884. function ImmSetConversionStatus; external imm32 name 'ImmSetConversionStatus';
  885. {$EXTERNALSYM ImmGetOpenStatus}
  886. function ImmGetOpenStatus; external imm32 name 'ImmGetOpenStatus';
  887. {$EXTERNALSYM ImmSetOpenStatus}
  888. function ImmSetOpenStatus; external imm32 name 'ImmSetOpenStatus';
  889.  
  890. {$EXTERNALSYM ImmGetCompositionFontA}
  891. function ImmGetCompositionFontA; external imm32 name 'ImmGetCompositionFontA';
  892. {$EXTERNALSYM ImmGetCompositionFontW}
  893. function ImmGetCompositionFontW; external imm32 name 'ImmGetCompositionFontW';
  894. {$EXTERNALSYM ImmGetCompositionFont}
  895. function ImmGetCompositionFont; external imm32 name 'ImmGetCompositionFontA';
  896.  
  897. {$EXTERNALSYM ImmSetCompositionFontA}
  898. function ImmSetCompositionFontA; external imm32 name 'ImmSetCompositionFontA';
  899. {$EXTERNALSYM ImmSetCompositionFontW}
  900. function ImmSetCompositionFontW; external imm32 name 'ImmSetCompositionFontW';
  901. {$EXTERNALSYM ImmSetCompositionFont}
  902. function ImmSetCompositionFont; external imm32 name 'ImmSetCompositionFontA';
  903.  
  904. {$EXTERNALSYM ImmConfigureIMEA}
  905. function ImmConfigureIMEA; external imm32 name 'ImmConfigureIMEA';
  906. {$EXTERNALSYM ImmConfigureIMEW}
  907. function ImmConfigureIMEW; external imm32 name 'ImmConfigureIMEW';
  908. {$EXTERNALSYM ImmConfigureIME}
  909. function ImmConfigureIME; external imm32 name 'ImmConfigureIMEA';
  910.  
  911. {$EXTERNALSYM ImmEscapeA}
  912. function ImmEscapeA; external imm32 name 'ImmEscapeA';
  913. {$EXTERNALSYM ImmEscapeW}
  914. function ImmEscapeW; external imm32 name 'ImmEscapeW';
  915. {$EXTERNALSYM ImmEscape}
  916. function ImmEscape; external imm32 name 'ImmEscapeA';
  917.  
  918. {$EXTERNALSYM ImmGetConversionListA}
  919. function ImmGetConversionListA; external imm32 name 'ImmGetConversionListA';
  920. {$EXTERNALSYM ImmGetConversionListW}
  921. function ImmGetConversionListW; external imm32 name 'ImmGetConversionListW';
  922. {$EXTERNALSYM ImmGetConversionList}
  923. function ImmGetConversionList; external imm32 name 'ImmGetConversionListA';
  924.  
  925. {$EXTERNALSYM ImmNotifyIME}
  926. function ImmNotifyIME; external imm32 name 'ImmNotifyIME';
  927.  
  928. {$EXTERNALSYM ImmGetStatusWindowPos}
  929. function ImmGetStatusWindowPos; external imm32 name 'ImmGetStatusWindowPos';
  930. {$EXTERNALSYM ImmSetStatusWindowPos}
  931. function ImmSetStatusWindowPos; external imm32 name 'ImmSetStatusWindowPos';
  932. {$EXTERNALSYM ImmGetCompositionWindow}
  933. function ImmGetCompositionWindow; external imm32 name 'ImmGetCompositionWindow';
  934. {$EXTERNALSYM ImmSetCompositionWindow}
  935. function ImmSetCompositionWindow; external imm32 name 'ImmSetCompositionWindow';
  936. {$EXTERNALSYM ImmGetCandidateWindow}
  937. function ImmGetCandidateWindow; external imm32 name 'ImmGetCandidateWindow';
  938. {$EXTERNALSYM ImmSetCandidateWindow}
  939. function ImmSetCandidateWindow; external imm32 name 'ImmSetCandidateWindow';
  940.  
  941. {$EXTERNALSYM ImmIsUIMessageA}
  942. function ImmIsUIMessageA; external imm32 name 'ImmIsUIMessageA';
  943. {$EXTERNALSYM ImmIsUIMessageW}
  944. function ImmIsUIMessageW; external imm32 name 'ImmIsUIMessageW';
  945. {$EXTERNALSYM ImmIsUIMessage}
  946. function ImmIsUIMessage; external imm32 name 'ImmIsUIMessageA';
  947.  
  948. {$EXTERNALSYM ImmGetVirtualKey}
  949. function ImmGetVirtualKey; external imm32 name 'ImmGetVirtualKey';
  950.  
  951. {$EXTERNALSYM ImmRegisterWordA}
  952. function ImmRegisterWordA; external imm32 name 'ImmRegisterWordA';
  953. {$EXTERNALSYM ImmRegisterWordW}
  954. function ImmRegisterWordW; external imm32 name 'ImmRegisterWordW';
  955. {$EXTERNALSYM ImmRegisterWord}
  956. function ImmRegisterWord; external imm32 name 'ImmRegisterWordA';
  957.  
  958. {$EXTERNALSYM ImmUnregisterWordA}
  959. function ImmUnregisterWordA; external imm32 name 'ImmUnregisterWordA';
  960. {$EXTERNALSYM ImmUnregisterWordW}
  961. function ImmUnregisterWordW; external imm32 name 'ImmUnregisterWordW';
  962. {$EXTERNALSYM ImmUnregisterWord}
  963. function ImmUnregisterWord; external imm32 name 'ImmUnregisterWordA';
  964.  
  965. {$EXTERNALSYM ImmGetRegisterWordStyleA}
  966. function ImmGetRegisterWordStyleA; external imm32 name 'ImmGetRegisterWordStyleA';
  967. {$EXTERNALSYM ImmGetRegisterWordStyleW}
  968. function ImmGetRegisterWordStyleW; external imm32 name 'ImmGetRegisterWordStyleW';
  969. {$EXTERNALSYM ImmGetRegisterWordStyle}
  970. function ImmGetRegisterWordStyle; external imm32 name 'ImmGetRegisterWordStyleA';
  971.  
  972. {$EXTERNALSYM ImmEnumRegisterWordA}
  973. function ImmEnumRegisterWordA; external imm32 name 'ImmEnumRegisterWordA';
  974. {$EXTERNALSYM ImmEnumRegisterWordW}
  975. function ImmEnumRegisterWordW; external imm32 name 'ImmEnumRegisterWordW';
  976. {$EXTERNALSYM ImmEnumRegisterWord}
  977. function ImmEnumRegisterWord; external imm32 name 'ImmEnumRegisterWordA';
  978.  
  979. end.
  980.  
  981.